package com.zmn.oms.dubbo.dto.zmn.erp;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author sunlife
 * @date:2020/9/15 11:22 上午
 * description:
 */
@Data
@ToString(callSuper = true)
@ApiModel("新单算账信息")
public class OmsErpNewOrderAccountDRO implements Serializable {

    private static final long serialVersionUID = 4960651336279222977L;
    /**
     * 订单Id
     */
    private Long orderId;

    /**
     * 工单Id
     */
    private Long workId;

    /**
     * 订单类型
     * 1新单，2返修单，3退款单'
     */
    private Integer orderType;

    /**
     * 下单时间
     */
    private Date receiveTime;

    /**
     * 派单时间
     */
    private Date distributeTime;

    /**
     * 上门时间
     */
    private Date visitTime;

    /**
     * 订单完成时间
     */
    private Date completeTime;

    /**
     * 下单城市id
     */
    private Integer orderCityId;

    /**
     * 下单城市名字
     */
    private String orderCityName;

    /**
     * 服务平台标志：10:啄木鸟 20:言而有信 30:一步维修 40:川南环保
     */
    private Integer plat;

    /**
     * 下单平台标志：10:啄木鸟 20:言而有信 30:一步维修 40:川南环保
     */
    private Integer platSource;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    private Integer bizType;

    /**
     * 业务模式：1平台，自营
     */
    private Integer bizMode;

    /**
     * 下单业务模式：1平台，自营
     */
    private Integer bizModeSource;

    /**
     * 子公司id
     */
    private Integer subCompanyId;

    /**
     * 子公司名字
     */
    private String subCompanyName;

    /**
     * 订单服务公司id
     */
    private Integer spCompanyId;

    /**
     * 订单服务公司名字
     */
    private String spCompanyName;

    /**
     * 服务分类Id
     */
    private Integer servCategId;

    /**
     * 服务分类名称
     */
    private String servCategName;

    /**
     * 产品分组id
     */
    private Integer productGroupId;

    /**
     * 产品分组id
     */
    private String productGroupName;

    /**
     * 订单渠道id
     */
    private Integer channelId;

    /**
     * 订单渠道名称
     */
    private String channelName;

    /**
     * 主工程师行车距离，从工程师不考虑此字段
     */
    private Integer distanceValue;

    /**
     * 订单金额
     */
    private Integer originalAmount;

    /**
     * 内部结算价
     */
    private Integer internalStatementAmount;

    /**
     * 外部结算价
     */
    private Integer outStatementAmount;

    /**
     * 订单工程师集合
     */
    private List<OmsErpOrderAccountEngineerDRO> engineers;

    /**
     * 订单类型（1 普通，2厂商 3 大客户 4 会员）
     */
    private Integer orderSourceType;

    /**
     * 订单支付列表
     */
    //TODO
    private List<OmsErpOrderPayDRO> orderPayList;


    /**
     * 订单客户ID
     */
    private Long userId;

    /**
     * 订单客户姓名
     */
    private String userName;


    /**
     * 产品主管id
     */
    private Integer engSupervisorId;


    /**
     * 产品主管名字
     */
    private String engSupervisorName;

    /**
     * 厂商id
     */
    private Integer factoryId;

    /**
     * 订单所有配件费总和
     */
    private Integer partAmount;

    /**
     * 订单优惠金额
     */
    private Integer discountAmount;

    /**
     * 增值产品预售金额(优惠预付金额)
      */
    private Integer vasPreSellAmount;

    /**
     * 订单优惠明细
     */
    private List<OmsErpOrderDiscountDRO> discountList;

    /**
     * 订单是否成功
     */
    @ApiModelProperty("订单状态")
    private Boolean orderSuccessful;

    /**
     * 算账时间
     */
    @ApiModelProperty("算账时间")
    private Date accountTime;

    /**
     * 工单绩效剔除标记
     */
    @ApiModelProperty("工单绩效剔除标记")
    private Boolean eliminateTag;
}
